Dynamic browser-based industrial automation interface system and method

ABSTRACT

An automation device interactive user interface and method of using the interface is provided herein. The interface is network based in that it employs a browser enhanced by an interactive program embedded therein and an execution engine to execute the program. The interface can be proximate to an associated automated device(s) or remotely connected thereto using a local area network (LAN) and/or a wide area network (WAN) such as the Internet. To facilitate ease of use, the embedded interactive program presents information in an appealing multimedia fashion such that interface appears live and changing. Furthermore, data associated with automation devices can be monitored, extracted, transmitted or otherwise manipulated in real time.

TECHNICAL FIELD

The present invention relates generally to industrial automation, andmore particularly toward a system and method for communicating withautomation devices utilizing an animated and interactive human/machineinterface (HMI).

BACKGROUND

Human/machine interfaces (HMIs) or simply user interfaces are importantto the successful operation and maintenance of industrial automationdevices and equipment. User interfaces provide the essentialcommunication link between operators and automation devices. This linkallows operators to, among other things, setup devices, monitor devicestatus during operation, as well as analyze device health. Without suchuser interfaces, high level industrial automation would be difficult ifnot impossible to achieve.

Over the years, user interfaces have gone through several changes. Atfirst, user interfaces were simply dumb terminals, which merelydisplayed text messages to end-users indicative of some processperformed by a server or processor associated with an automated device.For instance, a failed device would generate an internal error coderepresenting a determined error which could then be matched to aparticular error message and displayed to a user or operator on adisplay device. Over time, client side processing developed so as toenable a move from a text based interface to a graphical user interface(GUI). This transition shifted some of the processing burden away fromthe automated device or associated processor toward the client side GUI.These new GUIs vastly improved the ability of users to accessinformation quickly and easily. Unfortunately, these GUIs were notportable in part because of there size and machine dependencies andtherefore not a viable option for managing and controlling a pluralityof network connected devices. Shortly thereafter, the processing burdenshifted back toward devices and away from interfaces with the advent theInternet and web browsers. As a result, developers sought to use webbrowsers as an interface mechanism. However, browsers merely employ amark up language that is useful for displaying text and static imagesover a network (as was the purpose of browsers when they wereconceived), but not for dynamic user interfaces. Accordingly there is aneed in the art for a browser-based interface that provides users with arich interactive experience that allows users to quickly and easilyaccess and transfer information to and from automation devices inreal-time.

SUMMARY OF THE INVENTION

The following presents a simplified summary of the invention in order toprovide a basic understanding of some aspects of the invention. Thissummary is not an extensive overview of the invention. It is notintended to identify key/critical elements of the invention or todelineate the scope of the invention. Its sole purpose is to presentsome concepts of the invention in a simplified form as a prelude to themore detailed description that is presented later.

Disclosed herein is a system and method for interacting with automationdevices or machines. Automation devices are communicatively coupled withother components and devices such as a data store for centrally storingdevice data via a network. A user can then communicate proximately orremotely with the automation devices and other associated networkedcomponents and devices via a rich, responsive and engaging browser-basedinterface in order to easily monitor, extract, and/or transmit data toand from automation devices in real time. Such an interface is madepossible by extending browser functionality by embedding orincorporating an interactive program and an associated execution engine.The interactive program can comprise, among other things, bindings and apresentation component. Bindings can be specified which bind interactiveprogram variables to automation device data such that the displayed datacan be updated in real time and therefore always remain current. Thepresentation component can then be employed to specify an interactivemultimedia context to display and interact with device data.Accordingly, the present invention provides for sophisticated and realtime interaction with device data by employing a rich and easy to usebrowser-based interface.

To the accomplishment of the foregoing and related ends, certainillustrative aspects of the invention are described herein in connectionwith the following description and the annexed drawings. These aspectsare indicative of various ways in which the invention may be practiced,all of which are intended to be covered by the present invention. Otheradvantages and novel features of the invention may become apparent fromthe following detailed description of the invention when considered inconjunction with the drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing and other aspects of the invention will become apparentfrom the following detailed description and the appended drawingsdescribed in brief hereinafter.

FIG. 1 a is a block diagram of an industrial automation system inaccordance with an aspect of the present invention.

FIG. 1 b is a block diagram of an industrial automation system inaccordance with an aspect of the subject invention

FIG. 2 is a schematic block diagram of an interface in accordance withan aspect of the present invention.

FIG. 3 is a block diagram illustrating an interactive program inaccordance with an aspect of the subject invention.

FIG. 4 is an illustration of an exemplary interface in accordance withan aspect of the present invention.

FIG. 5 is an illustration of another exemplary interface in accordancewith an aspect of the present invention.

FIG. 6 depicts yet another exemplary interface in accordance with anaspect of the present invention.

FIG. 7 depicts another exemplary interface to be employed to control aproduction schedule for particular automated devices in accordance withan aspect of the subjection invention.

FIG. 8 is a flow chart diagram illustrating a methodology forinteracting with automation device data in accordance with an aspect ofthe present invention.

FIG. 9 is a flow chart diagram illustrating a methodology forinteracting with automation device data in accordance with an aspect ofthe subject invention.

FIG. 10 is a schematic block diagram illustrating a suitable operatingenvironment in accordance with an aspect of the present invention.

FIG. 11 is a schematic block diagram of a sample-computing environmentwith which the present invention can interact.

DETAILED DESCRIPTION

The present invention is now described with reference to the annexeddrawings, wherein like numerals refer to like elements throughout. Itshould be understood, however, that the drawings and detaileddescription thereto are not intended to limit the invention to theparticular form disclosed. Rather, the intention is to cover allmodifications, equivalents, and alternatives falling within the spiritand scope of the present invention.

As used in this application, the terms “component” and “system” areintended to refer to a computer-related entity, either hardware, acombination of hardware and software, software, or software inexecution. For example, a component may be, but is not limited to being,a process running on a processor, a processor, an object, an executable,a thread of execution, a program, and/or a computer. By way ofillustration, both an application running on a server and the server canbe a component. One or more components may reside within a processand/or thread of execution and a component may be localized on onecomputer and/or distributed between two or more computers.

Furthermore, the present invention may be implemented as a method,apparatus, or article of manufacture using standard programming and/orengineering techniques to produce software, firmware, hardware, or anycombination thereof. The term “article of manufacture” (oralternatively, “computer program product”) as used herein is intended toencompass a computer program accessible from any computer-readabledevice, carrier, or media. Of course, those skilled in the art willrecognize many modifications may be made to this configuration withoutdeparting from the scope or spirit of the subject invention.

Turning initially to FIG. 1 a, an industrial automation system 100 a isdepicted in accordance with an aspect of the subject invention. System100 a comprises one or more automation device(s) 110 (AUTOMATION DEVICE₁through AUTOMATION DEVICE_(N), where N is an integer greater than orequal to one), data storage 120 and interface 130. Automation device(s)110 can include any on of a plurality of industrial processes andmachines such programmable logic controllers (PLCs), pumps providingfluid transport and other processes, fans, conveyor systems,compressors, gear boxes, motion control and detection devices, sensors,screw pumps, and mixers, as well as hydraulic and pneumatic machinesdriven by motors. Such motors can be combined with other components,such as valves, pumps, furnaces, heaters, chillers, conveyor rollers,fans, compressors, gearboxes, and the like, as well as with appropriatemotor drives to form industrial machines and actuators. For example, anelectric motor could be combined with a motor drive providing variableelectrical power to the motor, as well as with a pump, whereby the motorrotates the pump shaft to create a controllable pumping system. Datastorage 120 provides a central storage location for housing datarelating to automation device(s) 110 including but not limited to devicedescription, location, and mechanical condition, energy or fuelconsumption, completed cycles, horsepower, average RPM, efficiencyrating, as well as data from sensors regarding device health and/orperformance. According to one aspect of the present invention datastorage device 120 comprises a relational database and associatedrelational database management system as is known in the art (e.g.,SQL). However, it should be noted that the subject invention is not solimited. For example, the data can be stored as XML (eXtensible MarkupLanguage) documents or substantially any other format. Interface 130 isoperable to connect users with a network of automation devices 110and/or data storage 120 via a wire (e.g., twisted pair, coaxial cable,optical fiber, Ethernet, USB (Universal Serial Bus), FireWire) orwirelessly (e.g., using IEEE 802.11a and/or IEEE 802.11b standards,Bluetooth technology, satellite). Interface 130 facilitates monitoring,extracting, transmitting, and otherwise interacting with automateddevice(s) 110 and data associated therewith.

As is shown in FIG. 1 a, a user such as an device operator can connectto data storage 120 and automation devices 110 over a local area network(LAN) utilizing a variety of LAN technologies, including FiberDistributed Data Interface (FDDI), Copper Distributed Data Interface(CDDI), Ethernet/IEEE 802.3, Token Ring/IEEE 802.5, physical connectiontopologies such as bus, tree, ring, and star, and the like. However,communications between networked devices such as automation devices 110,data storage 120, and interface 130 need not be limited to those devicesconnected locally to a network. Local networked devices can alsocommunicate to and from remote devices. Turning to FIG. 1 b, system 110b is depicted which is substantially the same as system 100 a exceptthat a user employs interface 130 to interact with automation devices110 and data storage 120 remotely over a wide area network (WAN) 140.WANs 140 are communication networks that span a large geographic area(e.g., nationwide, worldwide) and generally consist of the severalinterconnected local area networks (LANs) and metropolitan area networks(MANs). The largest known WAN 140 known today is the Internet. WANtechnologies include, but are not limited to, point-to-point links,circuit switching networks like Integrated Services Digital Networks(ISDN) and variations thereon, packet switching networks, T1 networks,and Digital Subscriber Lines (DSL).

Attention is now directed to FIG. 2 where interface 130 is illustratedin further detail. Interface 130 includes an input component 210, anoutput component 220, a browser 230, an interactive program 232, and anexecution engine 234. Input component 210 receives input from a user andfrom other sources such as automation device(s) 110, and centralizedstorage 120. Input received by the input component 210 from a user cancome via a touch screen display, a keyboard, a mouse, a stylus, a voicerecognition system and the like. Output component 220 provides data fordisplay to a user (e.g., CRT, LCD . . . ) and can also be employed towrite data to storage device 120 or issue commands or instructions toautomation devices 110. Browser 230 corresponds to an applicationprogram used to facilitate viewing of network data (e.g., InternetExplorer®, Netscape Navigator®). Browser 230 comprises an interactiveprogram 232 and an execution engine 234. Interactive program 232 can bedesigned to specify, inter alia, interface functionality andpresentation format as described in further detail below. Interactiveprogram 232 can then be embedded into browser 230 using HTML (Hyper TextMarkup Language). For example:

<embed src = “DeviceInterface.ext” Height=”1000” Width=”1200”type=”application type”> </embed>After an interactive program 232 is embedded into the browser it can beexecuted using execution engine 234. Execution engine 234 can be in theform of a plugin which can be downloaded and installed to extend browserfunctionality.

FIG. 3 is a block diagram depicting an interactive program 232 inaccordance with an aspect of the present invention. Program 232 caninclude among other things a binding component 310, variables 320,functions 330 and a presentation component 340. Binding component 310can be employed to bind program variables to data from outside sources(e.g., data store 120). For instance, data corresponding to an automateddevice's temperature stored either in automated device memory or incentralized data storage 120 can be bound to a temperature variable 320in the interactive program. Binding data in this manner enablesreal-time updates and display of changing data. Functions 330 can alsobe employed to manipulate received data to produce rich descriptions ofautomated device status, performance, and health as well as provide themeans to create, update, monitor, transmit and extract data from aplurality of sources including but not limited to centralized storage120 and automated device(s) 110. For example, functions 330 can beemployed to monitor a device's temperature and power, compare thosevalues to acceptable values (e.g., provided by a manufacturer via a webservice or determined by the function itself), and produce an alertindicating the health status of a device (e.g., excellent, good, poor,dangerous . . . ). Furthermore, it should be appreciated that morecomplex functions can be executed outside the interactive program andtied therein for example by using binding component 310 to facilitateimproved execution time and real-time display. For instance, complexdevice diagnostic/prognostic analysis utilizing artificial intelligencetechniques such as Bayesian networks and the like can be executed by aserver (not shown) associated with data store 120 (e.g., upon clicking abutton in the interface), the result of such analysis being linked toone or more interactive program variables, which can then be used todisplay the result. Presentation component 340 can be utilized tospecify the manner or format in which device data and other informationwill be presented, utilized, and otherwise interacted with by a user.Data can be presented in a multimedia fashion to improve the look of thedisplay and the ease of use, for example by integrating, a plethora ofcolors, images, sounds, animated images, movies and the like. Inaddition, buttons, check boxes, slider bars, text boxes, hyperlinks andthe like can be displayed and used as a mechanism to initiate specificfunctionality. For example, a button can be provided that when clickedon by a user (e.g., using a mouse) initiates the performance ofmaintenance on an automated device, or produces a graphicalrepresentation of system production. Still further yet, a presentationcan be specified as an interactive map of a facility such that a usercan point and click to start and stop devices, increase or decreasepower, or view information about each device.

According to one aspect of the subject invention, Flash MX byMacromedia, Inc. can be utilized to provide a rich interactive interfacefor use with automation devices. Flash MX provides a system consistingof a group of software applications for producing interactive programsand a browser plugin (e.g., flash player, shockwave player) forexecuting such an interactive program from within a browser. Flash, asis known in the art, is widely utilized for developing Internetapplications that incorporate full motion video and sound. Applying suchtechnology to visualize live real-time automation data provides benefitsnot contemplated by the original developers of Flash.

FIG. 4 illustrates an exemplary interface 400 in accordance with anaspect of the present invention. Exemplary interface 400 is an assetmanagement maintenance interface. As is illustrated, the interface isdivided into three frames or sections 410, 420, and 430. Frame 410simply provides a section to display the title of the interface—AssetManagement Maintenance. Frame 420 provides links 422, 424, and 426 toother web pages and functionality possibly for display in frame 430.Link 422 corresponds to a devices link which can be activated such thata list or map of system devices can be displayed in frame 430 forselection by a user. Link 424 provides a link to set up email such thata user will have easy access to email to notify others of informationdisplayed in the interface or even copy screen shots. Return home link426 provides an option to return to a homepage as the currentlydisplayed page is at least one level deep in a hierarchy of interfacepages. Frame 430 displays the main page selected, which corresponds hereto a packager device. Frame 430 comprises two blocks 440 and 450separating distinct portions of information about the packager device.Block 440 includes device description 441, device location 442, date oflast maintenance 443 and current mechanical condition 444. As shownhere, device description and device location simply display respectiveupdatable data next to statically displayed text. However, the displayedtext could also be links such that upon selection of a link the user istransported to another page of the interface which contains, forinstance, more detailed information about the device or a mapillustrating the actual location of the device relative to otherdevices. Also shown here in block 440 is the current mechanicalcondition of the packager device, which can be determined and displayedin real time, and a perform maintenance button 446. Perform maintenancebutton 446 provides the user the option and mechanism to initiate amaintenance process or program by simply clicking the buttonconveniently located below the listed mechanical condition -hereMaintenance Due. Block 450 comprises three tables illustrating data withrespect to equipment load, fuel consumption and performance. This datacan be implemented such that the interactive program providing thisdisplay links, binds, or calculates the displayed data in real time. Forexample, during the time in which a user is perusing the display thedata corresponding to the total lifetime cycles completed can beconstantly updated as the device completes cycles. Accordingly, the userwill always have the most current data available rather than merely asnapshot of the data at a particular time (e.g., when the browser isfirst opened by a user).

FIG. 5 illustrates an exemplary interface 500 in accordance with anotheraspect of the present invention. Interface 500 could result in responseto the initiation of a diagnostic/prognostic procedure via a button, orcommand line prompt, for example. As shown, the diagnostic/prognosticprocedure determined that there was a problem with the conveyer on aparticular device. Accordingly, a text box 510 is displayed indicatingthat the problem concerns conveyer 8. Furthermore, the device 520associated with conveyer 8 is displayed. Still further yet, the problemconveyer belt is highlighted 530 (e.g., color, hatching, flashing color,sound, or a combination thereof) so that a user can easily identifyexactly where the problem lies. If multiple problems are found, multipleareas of the device can be highlighted and/or noted in a text box toindicate each problem area. As problems are resolved, highlighted andnoted areas can be removed in real time to indicate to the user that aparticular problem has been fixed. In addition, it should be appreciatedthat if the device image shown is rendered by an interactive program.Therefore, the image can be live and active. For example, by hovering acursor over portions of the image additional information can be displaysuch as a description of the part or more information about the cause ofa problem. Furthermore, the image is interactive in that a user can zoomin and out on particular portions the image using mechanisms such aszoom in button 540, zoom out button 545, and positional arrows 550.According to an aspect of the invention, the execution engine 234 (e.g.,flash plugin) provides such interactivity as specified in an interactiveprogram 232. For instance, causing a cursor to hover over a portion ofthe image can cause the execution engine to request information (e.g.control data, model information . . . ) from a data source (e.g., webpage, web service, data storage medium) so as to retrieve informationand update the display for example with a text box or bubble 560containing the retrieved information. Additionally it should be notedthat a request by the execution engine can initiate other procedures.For instance, a request for information regarding the health of a motorin device 520 can cause the controller associated therewith to query themotor or initiate a diagnostic testing procedure. The results can thenbe provided in a file (e.g., XML file) for the execution engine toretrieve the particular requested information.

FIG. 6 depicts yet another exemplary interface 600 in accordance with anaspect of the present invention. Interface 600 illustrates theinteractivity of the present invention specifically with respect tographs and charts. In particular, a user can produce a process historygraph 610, for example, in real time from within a browser window 600.For instance, a Y axis (ordinate) can be utilized to indicate the numberof units processed (e.g., 0-8291) and an X axis (abscissa) can beutilized to determine the number of units processed throughout a givenperiod of time (e.g., hour, day, month, year). Vertical values 620 andhorizontal values 630 can be automatically retrieved via the autopopulate mechanism 650 (e.g., from data storage 120) or manually set byentering each value and activating the add value mechanism 640.Furthermore, the user interface 600 further comprises a mechanism 660that provides a link to additional information (e.g., different type ofgraph- pie, bar . . . ).

Additionally it should be noted that a similar interface such asinterface 700 of FIG. 7 could be employed to provide control, forinstance, of a production schedule for particular automated devices. Forexample, an interactive graph 710 could be provided which controls theoutput of the machine (e.g., number of products produced). A user couldmodify the output of a machine by manually entering vertical productionvalues corresponding to number of units to produce at 720 and horizontaltime values corresponding, for example, to hours in a day at 730 andthen activating mechanism 740 (e.g., by clicking on with a mouse).Additionally or alternatively, a use can click and drag (e.g., using amouse, stylus . . . ) points 750 on the graph 710 to effectuate changesin a production schedule. The interface can subsequently initiateeffectuation of such changes by interpreting the interactive graph 710,by clicking on button 760, for example.

In view of the exemplary systems described supra, a methodology that maybe implemented in accordance with the present invention will be betterappreciated with reference to the flow charts of FIGS. 8 and 9. Whilefor purposes of simplicity of explanation, the methodology is shown anddescribed as a series of blocks, it is to be understood and appreciatedthat the present invention is not limited by the order of the blocks, assome blocks may, in accordance with the present invention, occur indifferent orders and/or concurrently with other blocks from what isdepicted and described herein. Moreover, not all illustrated blocks maybe required to implement the methodology in accordance with the presentinvention.

Additionally, it should be further appreciated that the methodologiesdisclosed hereinafter and throughout this specification are capable ofbeing stored on an article of manufacture to facilitate transporting andtransferring such methodologies to computers. The term article ofmanufacture, as used, is intended to encompass a computer programaccessible from any computer-readable device, carrier, or media.

Turning to FIG. 8, a methodology 800 for interacting with automationdevice data is illustrated in accordance with an aspect of the presentinvention. At 810, interactive program components are specified such asvariables, bindings, functions, and presentation format. For example,device performance data such as average horsepower, average RPM, andefficiency rating can be bound to program variables of similar names anddisplayed in table format on a browser page such as in FIG. 4. At 820,the specified interactive program is embedded in a browser, for instanceby including embed tags (e.g., <embed> . . . </embed>) and specifyingappropriate parameters. Finally, at 830, the interactive program isexecuted by a browser in conjunction with an execution engine. Theexecution engine can be a plugin that is downloaded and installed toenhance the functionality of a browser. According to one aspect of thesubject invention, the interactive program is a flash program which canbe executed within a browser environment utilizing a flash player.

Turning attention to FIG. 9, a methodology 900 for interacting withautomation device data is depicted. At 910, a request for information ordata is received from within a browser. Such a request can be made beinteracting with various mechanisms including but not limited to buttonsand sliders or from placing a cursor (e.g., arrow) over a image. Therequest at 910 then causes an execution engine associated with thebrowser (e.g., plugin) to retrieve the requested information at 920 froma source such as a web page. Furthermore, it should be noted that theexecution engine can cause devices to execute processes to generate orretrieve particular data. At 930, upon receiving the requestedinformation updates the browser. It should also be noted and appreciatedthat according to an aspect of the invention, this methodology can becompleted in real-time such that a user would notice and any significantdelay between an request causing action on their part and theinformation being retrieved and updated in the browser.

In order to provide a context for the various aspects of the invention,FIGS. 10 and 11 as well as the following discussion are intended toprovide a brief, general description of a suitable computing environmentin which the various aspects of the present invention may beimplemented. While the invention has been described above in the generalcontext of computer-executable instructions of a computer program thatruns on a computer and/or computers, those skilled in the art willrecognize that the invention also may be implemented in combination withother program modules. Generally, program modules include routines,programs, components, data structures, etc. that perform particulartasks and/or implement particular abstract data types. Moreover, thoseskilled in the art will appreciate that the inventive methods may bepracticed with other computer system configurations, includingsingle-processor or multiprocessor computer systems, mini-computingdevices, mainframe computers, as well as personal computers, hand-heldcomputing devices, microprocessor-based or programmable consumerelectronics, and the like. The illustrated aspects of the invention mayalso be practiced in distributed computing environments where task areperformed by remote processing devices that are linked through acommunications network. However, some, if not all aspects of theinvention can be practices on stand alone computers. In a distributedcomputing environment, program modules may be locate in both local andremote memory storage devices.

With reference to FIG. 10, an exemplary environment 1010 forimplementing various aspects of the invention includes a computer 1012.The computer 1012 includes a processing unit 1014, a system memory 1016,and a system bus 1018. The system bus 1018 couples system componentsincluding, but not limited to, the system memory 1016 to the processingunit 1014. The processing unit 1014 can be any of various availableprocessors. Dual microprocessors and other multiprocessor architecturesalso can be employed as the processing unit 1014.

The system bus 1018 can be any of several types of bus structure(s)including the memory bus or memory controller, a peripheral bus orexternal bus, and/or a local bus using any variety of available busarchitectures including, but not limited to, 11-bit bus, IndustrialStandard Architecture (ISA), Micro-Channel Architecture (MSA), ExtendedISA (EISA), Intelligent Drive Electronics (IDE), VESA Local Bus (VLB),Peripheral Component Interconnect (PCI), Universal Serial Bus (USB),Advanced Graphics Port (AGP), Personal Computer Memory CardInternational Association bus (PCMCIA), and Small Computer SystemsInterface (SCSI).

The system memory 1016 includes volatile memory 1020 and nonvolatilememory 1022. The basic input/output system (BIOS), containing the basicroutines to transfer information between elements within the computer1012, such as during start-up, is stored in nonvolatile memory 1022. Byway of illustration, and not limitation, nonvolatile memory 1022 caninclude read only memory (ROM), programmable ROM (PROM), electricallyprogrammable ROM (EPROM), electrically erasable ROM (EEPROM), or flashmemory. Volatile memory 1020 includes random access memory (RAM), whichacts as external cache memory. By way of illustration and notlimitation, RAM is available in many forms such as synchronous RAM(SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rateSDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), Synchlink DRAM (SLDRAM), anddirect Rambus RAM (DRRAM).

Computer 1012 also includes removable/non-removable,volatile/non-volatile computer storage media. FIG. 10 illustrates, forexample disk storage 1024. Disk storage 4124 includes, but is notlimited to, devices like a magnetic disk drive, floppy disk drive, tapedrive, Jaz drive, Zip drive, LS-100 drive, flash memory card, or memorystick. In addition, disk storage 1024 can include storage mediaseparately or in combination with other storage media including, but notlimited to, an optical disk drive such as a compact disk ROM device(CD-ROM), CD recordable drive (CD-R Drive), CD rewritable drive (CD-RWDrive) or a digital versatile disk ROM drive (DVD-ROM). To facilitateconnection of the disk storage devices 1024 to the system bus 1018, aremovable or non-removable interface is typically used such as interface1026.

It is to be appreciated that FIG. 10 describes software that acts as anintermediary between users and the basic computer resources described insuitable operating environment 1010. Such software includes an operatingsystem 1028. Operating system 1028, which can be stored on disk storage1024, acts to control and allocate resources of the computer system1012. System applications 1030 take advantage of the management ofresources by operating system 1028 through program modules 1032 andprogram data 1034 stored either in system memory 1016 or on disk storage1024. It is to be appreciated that the present invention can beimplemented with various operating systems or combinations of operatingsystems.

A user enters commands or information into the computer 1012 throughinput device(s) 1036. Input devices 1036 include, but are not limitedto, a pointing device such as a mouse, trackball, stylus, touch pad,keyboard, microphone, joystick, game pad, satellite dish, scanner, TVtuner card, digital camera, digital video camera, web camera, and thelike. These and other input devices connect to the processing unit 1014through the system bus 1018 via interface port(s) 1038. Interfaceport(s) 1038 include, for example, a serial port, a parallel port, agame port, and a universal serial bus (USB). Output device(s) 1040 usesome of the same type of ports as input device(s) 1036. Thus, forexample, a USB port may be used to provide input to computer 1012, andto output information from computer 1012 to an output device 1040.Output adapter 1042 is provided to illustrate that there are some outputdevices 1040 like monitors, speakers, and printers, among other outputdevices 1040, that require special adapters. The output adapters 1042include, by way of illustration and not limitation, video and soundcards that provide a means of connection between the output device 1040and the system bus 1018. It should be noted that other devices and/orsystems of devices provide both input and output capabilities such asremote computer(s) 1044.

Computer 1012 can operate in a networked environment using logicalconnections to one or more remote computers, such as remote computer(s)1044. The remote computer(s) 1044 can be a personal computer, a server,a router, a network PC, a workstation, a microprocessor based appliance,a peer device or other common network node and the like, and typicallyincludes many or all of the elements described relative to computer1012. For purposes of brevity, only a memory storage device 1046 isillustrated with remote computer(s) 1044. Remote computer(s) 1044 islogically connected to computer 1012 through a network interface 1048and then physically connected via communication connection 1050. Networkinterface 1048 encompasses communication networks such as local-areanetworks (LAN) and wide-area networks (WAN). LAN technologies includeFiber Distributed Data Interface (FDDI), Copper Distributed DataInterface (CDDI), Ethernet/IEEE 802.3, Token Ring/IEEE 802.5 and thelike. WAN technologies include, but are not limited to, point-to-pointlinks, circuit switching networks like Integrated Services DigitalNetworks (ISDN) and variations thereon, packet switching networks, andDigital Subscriber Lines (DSL).

Communication connection(s) 1050 refers to the hardware/softwareemployed to connect the network interface 1048 to the bus 1018. Whilecommunication connection 1050 is shown for illustrative clarity insidecomputer 1012, it can also be external to computer 1012. Thehardware/software necessary for connection to the network interface 1048includes, for exemplary purposes only, internal and externaltechnologies such as, modems including regular telephone grade modems,cable modems and DSL modems, ISDN adapters, and Ethernet cards.

FIG. 11 is a schematic block diagram of a sample-computing environment1100 with which the present invention can interact. The system 1100includes one or more client(s) 1110. The client(s) 1110 can be hardwareand/or software (e.g., threads, processes, computing devices). Thesystem 1100 also includes one or more server(s) 1130. The server(s) 1130can also be hardware and/or software (e.g., threads, processes,computing devices). The servers 1130 can house threads to performtransformations by employing the present invention, for example. Onepossible communication between a client 1110 and a server 1130 may be inthe form of a data packet adapted to be transmitted between two or morecomputer processes. The system 1100 includes a communication framework1150 that can be employed to facilitate communications between theclient(s) 1110 and the server(s) 1130. The client(s) 1110 are operablyconnected to one or more client data store(s) 1160 that can be employedto store information local to the client(s) 1110. Similarly, theserver(s) 1130 are operably connected to one or more server datastore(s) 1140 that can be employed to store information local to theservers 1130.

What has been described above includes examples of the presentinvention. It is, of course, not possible to describe every conceivablecombination of components or methodologies for purposes of describingthe present invention, but one of ordinary skill in the art mayrecognize that many further combinations and permutations of the presentinvention are possible. Accordingly, the present invention is intendedto embrace all such alterations, modifications and variations that fallwithin the spirit and scope of the appended claims. Furthermore, to theextent that the term “includes” is used in either the detaileddescription or the claims, such term is intended to be inclusive in amanner similar to the term “comprising” as “comprising” is interpretedwhen employed as a transitional word in a claim.

1. A system for interacting with automation devices, comprising: aplurality of automation devices connected to a network, the automationdevices supply automation data to the network; and an interfaceconnected to the network including an interactive program and anexecution engine comprising a flash player for executing the program,wherein the interactive program and the execution engine are embeddedand executed from within a browser and interact with the automationdevice data, the interactive program embedded within the browsercomprising a binding component and a presentation component, the bindingcomponent binds interactive program variables to the automation devicedata to update the displayed data in real time and the presentationcomponent produces an interactive graph for a user to interact with theautomation devices comprising at least one of start or stop automationdevices, increase or decrease power, view information about eachautomation device or modify production schedule of the automationdevices.
 2. The system of claim 1, further comprising a data storagemedium for centrally storing data relating to the plurality ofautomation devices.
 3. The system of claim 2, wherein the browserretrieves data utilizing the interactive program from the data storagemedium.
 4. The system of claim 2, wherein the browser writes datautilizing the interactive program to the data storage medium.
 5. Thesystem of claim 1, the binding component that binds program variables todevice data such that a change in device data is immediately reflectedin the program variable bound thereto.
 6. The system of claim 5, whereinthe interactive program comprises functions that operate on programvariables to produce information desired by a user.
 7. The system ofclaim 6, wherein the presentation component produces a multimediapresentation that is displayed on a display device.
 8. The system ofclaim 7, wherein the multimedia presentation provides data with respectto one or more automation devices and updates the data in real-time. 9.The system of claim 7 wherein the multimedia presentation provides aplurality mechanisms for transmitting data to one or more automationdevices.
 10. An human machine interface apparatus for operating in anindustrial facility comprising: a data store; one or more automationdevices communicatively coupled to the data store via a network, whereinthe automation devices store data in the data store; and a browser thataccesses data concerning the one or more automation devices over thenetwork and presenting the data to a users, incorporating a plurality ofmultimedia effects, wherein one of the multimedia effects is aninteractive graph and the user clicks and drags points on the graph toeffectuate changes in a production schedule for the automation devices,the multimedia effects being incorporated in the browser via an embeddedinteractive program wherein the interactive program is executed by aflash player associated with the browser.
 11. The apparatus of claim 10,wherein one of the effects is a depiction of an automation device withregions highlighted in real-time upon the occurrence of an error toindicate the device region associated with the error.
 12. A method forinteracting with automation devices comprising: binding programvariables to automation device data using an interactive program andspecifying a multimedia presentation format for interaction by a user;embedding the interactive program into a browser; utilizing the browserand an associated execution engine comprising a flash player to executethe interactive program; producing a graphical representation of systemproduction to interact with the automation devices and updating thedisplayed data in real time using the interactive program; and clickingand dragging points on the graphical representation to effectuatechanges in a production schedule for the automation devices.
 13. Themethod of claim 12, wherein the device data is stored in a centralizeddata store accessible via a network.
 14. The method of claim 12, whereinthe interactive program is a flash program.
 15. The method of claim 14,wherein the execution engine is a flash player.
 16. An article ofmanufacturing comprising a computer usable medium having computerreadable instructions stored thereon to perform the method of claim 12.17. A method for interacting with automation device data comprising:binding program variables to automation device data using an interactiveprogram and specifying a multimedia presentation format for interactionby a user; embedding the interactive program into a browser application;receiving a request for automation device information from the browserapplication; retrieving the requested automation device information froma data source utilizing an execution engine comprising a flash playerassociated with the browser application; updating the browser with therequested automation device information; producing a graphicalrepresentation of system production to interact with the automationdevices; and clicking and dragging points on the graphicalrepresentation to effectuate changes in a production schedule for theautomation devices.
 18. The method of claim 17, wherein the request forinformation is generated by positioning a cursor over an image.
 19. Themethod of claim 17, wherein the data source is a web page.
 20. Themethod of claim 17, wherein information is retrieved from a devicecontroller and the information is control data.
 21. An article ofmanufacturing comprising a computer usable medium having computerreadable instructions stored thereon to perform the method of claim 20.22. The system of claim 1, wherein the binding component binds datacorresponding to an automated device's temperature to a temperaturevariable in the interactive program to update the displayed temperatureof the automation device in real time.
 23. The system of claim 6,whereinthe functions provides an alert indicating health status of theautomation devices.
 24. The system of claim 1, wherein the interactiveprogram further displays images of the automation devices.
 25. Thesystem of claim 24, wherein the images are active and a cursor, hoveredover portions of the image, provides a description of the automationdevice or information about cause of a problem associated with theautomation device.
 26. The system of claim 10, wherein the user modifiesoutput of a machine by manually entering vertical production valuescorresponding to number of units to produce and horizontal time valuescorresponding to hours in a day in the interactive graph.